<html><head>
<title>Extrude Documentation</title>

<style type="text/css">
hr {color: sienna}
p {margin-left: 20px}
</style>

</head>

<body>
<h1>Extrude Documentation</h1>
<h2>Introduction</h2>
Extrude requires pySerial installed for this module to work. If you are using Fedora it is available on yum (run "sudo yum install pyserial").
<br />
<br />
To actually control the reprap requires write access to the serial device, running as root is one way to get that access.
<br />
<br />
<b>Extrude</b> is a python script to display and extrude a gcode file.  It controls the extruder and movement.  It can read linear and helical move commands. It saves a log file with the suffix _log.
<br>
<h2>Example</h2>
<p>This example displays and extrudes a gcode file.  This example is run in a terminal as root in the folder which contains Hollow Square.gcode, and extrude.py.</p>
<pre><p>
>>> import reprap.extrude as extrude
Extrude has been imported.
The gcode files in this directory that are not log files are the following:
['Hollow Square.gcode']


>>> extrude.display()
File Hollow Square.gcode is being displayed.
reprap.serial = serial.Serial(0, 19200, timeout = 60)
reprap.cartesian.x.active = True
reprap.cartesian.y.active = True
reprap.cartesian.z.active = True
reprap.extruder.active = True
reprap.cartesian.x.setNotify()
reprap.cartesian.y.setNotify()
reprap.cartesian.z.setNotify()
reprap.cartesian.x.limit = 2523
reprap.cartesian.y.limit = 2000
reprap.cartesian.homeReset( 200, True )
( GCode generated by March 29,2007 Skeinforge )
( Extruder Initialization )
M100 P210
M103
reprap.extruder.setMotor(reprap.CMD_REVERSE, 0)
..
many lines of gcode and extruder commands
..
reprap.cartesian.homeReset( 600, True )
reprap.cartesian.free()
The gcode log file is saved as Hollow Square_log.gcode


>>> extrude.displayFile("Hollow Square.gcode")
File Hollow Square.gcode is being displayed.
..
The gcode log file is saved as Hollow Square_log.gcode


>>> extrude.displayFiles(["Hollow Square.gcode"])
File Hollow Square.gcode is being displayed.
..
The gcode log file is saved as Hollow Square_log.gcode


>>> extrude.displayText("
( GCode generated by March 29,2007 Skeinforge )
( Extruder Initialization )
..
many lines of gcode
..
")

reprap.serial = serial.Serial(0, 19200, timeout = 60)
reprap.cartesian.x.active = True
reprap.cartesian.y.active = True
reprap.cartesian.z.active = True
reprap.extruder.active = True
reprap.cartesian.x.setNotify()
reprap.cartesian.y.setNotify()
reprap.cartesian.z.setNotify()
reprap.cartesian.x.limit = 2523
reprap.cartesian.y.limit = 2000
reprap.cartesian.homeReset( 200, True )
( GCode generated by March 29,2007 Skeinforge )
( Extruder Initialization )
M100 P210
M103
reprap.extruder.setMotor(reprap.CMD_REVERSE, 0)
..
many lines of gcode and extruder commands
..
reprap.cartesian.homeReset( 600, True )
reprap.cartesian.free()


Note: On my system the reprap is not connected, so I get can not connect messages, like:

>>> extrude.extrude()
File Hollow Square.gcode is being extruded.
reprap.serial = serial.Serial(0, 19200, timeout = 60)
reprap.cartesian.x.active = True
reprap.cartesian.y.active = True
reprap.cartesian.z.active = True
reprap.extruder.active = True
reprap.cartesian.x.setNotify()
Error: Serial timeout
Error: ACK not recieved
..

On a system where a reprap is connected to the serial port, you should get the following:

>>> extrude.extrude()
File Hollow Square.gcode is being extruded.
..
The gcode log file is saved as Hollow Square_log.gcode


>>> extrude.extrudeFile("Hollow Square.gcode")
File Hollow Square.gcode is being extruded.
..
The gcode log file is saved as Hollow Square_log.gcode


>>> extrude.extrudeFiles(["Hollow Square.gcode"])
File Hollow Square.gcode is being extruded.
..
The gcode log file is saved as Hollow Square_log.gcode


>>> extrude.extrudeText("
( GCode generated by March 29,2007 Skeinforge )
( Extruder Initialization )
..
many lines of gcode
..
")

reprap.serial = serial.Serial(0, 19200, timeout = 60)
reprap.cartesian.x.active = True
reprap.cartesian.y.active = True
reprap.cartesian.z.active = True
reprap.extruder.active = True
reprap.cartesian.x.setNotify()
reprap.cartesian.y.setNotify()
reprap.cartesian.z.setNotify()
reprap.cartesian.x.limit = 2523
reprap.cartesian.y.limit = 2000
reprap.cartesian.homeReset( 200, True )
( GCode generated by March 29,2007 Skeinforge )
( Extruder Initialization )
M100 P210
M103
reprap.extruder.setMotor(reprap.CMD_REVERSE, 0)
..
many lines of gcode and extruder commands
..
reprap.cartesian.homeReset( 600, True )
reprap.cartesian.free()



</p></pre>
<br>

<h2>Display Commands</h2>
<h3>display</h3>
<p>Parse a gcode file and display the commands.<br>
<b>extrude.display( filename = '' )</b><br>
<ul><li><i>filename</i> - Name of the file.  If no filename is specified, parse all the gcode files which are not log files in this folder.</li>
</ul>
Returns: Nothing<br></p>

<h3>displayFile</h3>
<p>Parse a gcode file and display the commands.<br>
<b>extrude.displayFile( filename )</b><br>
<ul><li><i>filename</i> - Name of the file.</li>
</ul>
Returns: Nothing<br></p>

<h3>displayFiles</h3>
<p>Parse gcode files and display the commands.<br>
<b>extrude.displayFiles( filenames )</b><br>
<ul><li><i>filenames</i> - List of filenames.</li>
</ul>
Returns: Nothing<br></p>
<br>

<h3>displayText</h3>
<p>Parse a gcode text and display the commands.<br>
<b>extrude.displayText( gcodeText )</b><br>
<ul><li><i>gcodeText</i> - Gcode text.</li>
</ul>
Returns: Gcode text and commands.<br></p>

<h2>Extrude Commands</h2>
<h3>extrude</h3>
<p>Parse a gcode file and send the commands to the extruder.  This function requires write access to the serial device, running as root is one way to get that access.<br>
<b>extrude.extrude( filename = '' )</b><br>
<ul><li><i>filename</i> - Name of the file.  If no filename is specified, parse all the gcode files which are not log files in this folder.</li>
</ul>
Returns: Nothing<br></p>

<h3>extrudeFile</h3>
<p>Parse a gcode file and send the commands to the extruder.  This function requires write access to the serial device, running as root is one way to get that access.<br>
<b>extrude.extrudeFile( filename )</b><br>
<ul><li><i>filename</i> - Name of the file.</li>
</ul>
Returns: Nothing<br></p>

<h3>extrudeFiles</h3>
<p>Parse gcode files and send the commands to the extruder.  This function requires write access to the serial device, running as root is one way to get that access.<br>
<b>extrude.extrudeFiles( filenames )</b><br>
<ul><li><i>filenames</i> - List of filenames.</li>
</ul>
Returns: Nothing<br></p>

<h3>extrudeText</h3>
<p>Parse a gcode text and send the commands to the extruder.  This function requires write access to the serial device, running as root is one way to get that access.<br>
<b>extrude.extrudeText( gcodeText )</b><br>
<ul><li><i>gcodeText</i> - Gcode text.</li>
</ul>
Returns: Gcode text and commands.<br></p>
<br>

</body></html>
